#ifndef __RED_BOOL_OBJECT_H__
#define __RED_BOOL_OBJECT_H__

#include "redobject.h"

typedef struct _RedBoolObject
{
	RedObject_HEAD
} RedBoolObject;

RED_EXPORT extern RedTypeObject RedType_Bool;
RED_EXPORT extern RedBoolObject RedBool_True;
RED_EXPORT extern RedBoolObject RedBool_False;

#define Red_True				((RedObject *)(&RedBool_True))
#define Red_False				((RedObject *)(&RedBool_False))

#define Red_Return_True()		return (Red_REF(Red_True), Red_True)
#define Red_Return_False()		return (Red_REF(Red_False), Red_False)

#define RedBool_FromBool(b)		((b) ? (Red_REF(Red_True), Red_True) : (Red_REF(Red_False), Red_False))

RED_EXPORT char RedBool_IsTrue(RedObject *self);

#endif /* __RED_BOOL_OBJECT_H__ */
